#include <stdio.h>
int main()
{
    int nums[] = {7, 3, 1, 9, 5, 4, 2, 8};
    int numSize = 8;
    printf("rowArray:\n");
    for (int i = 0; i < numSize; i++)
    {
        printf("%d ", nums[i]);
    }
    printf("\n");
    for (int gap = numSize / 2; gap > 0; gap /= 2)
    {
        printf("gap: %d\n", gap);
        for (int i = gap; i < numSize; i++)
        {
            int j = i;
            int temp = nums[i];
            for (; j - gap >= 0 && nums[j - gap] > temp; j -= gap) //特别注意此处
            {
                nums[j] = nums[j - gap];
            }
            nums[j] = temp;
            // if (nums[i - gap] > nums[i])
            // {
            //     int temp = nums[i];
            //     nums[i] = nums[i - gap];
            //     nums[i - gap] = temp;
            // }
        }
        for (int i = 0; i < numSize; i++)
        {
            printf("%d ", nums[i]);
        }
        printf("\n");
    }
    for (int i = 0; i < numSize; i++)
    {
        printf("%d ", nums[i]);
    }
}